package site.wlwsjsx.iot_backend.dto;

import lombok.Data;
import java.time.LocalDateTime;

/**
 * 环境数据半小时聚合数据传输对象（DTO）
 * 用于封装和传输每半小时的环境数据聚合结果
 */
@Data
public class EnvHalfHourAggDTO {

    /**
     * 半小时时间段起点（如 2025-10-09 14:30:00）
     * 前端折线图 x 轴显示该时间
     */
    private LocalDateTime halfHourStart;

    /**
     * 该半小时内的平均温度
     * 单位：摄氏度
     */
    private Double avgTemperature;

    /**
     * 该半小时内的平均湿度
     * 单位：百分比
     */
    private Double avgHumidity;

    /**
     * 无参构造方法
     * 用于创建空的 EnvHalfHourAggDTO 实例
     */
    public EnvHalfHourAggDTO() {
    }

    /**
     * 获取半小时时间段起点
     *
     * @return 半小时时间段起点的 LocalDateTime 对象
     */
    public LocalDateTime getHalfHourStart() {
        return halfHourStart;
    }

    public void setHalfHourStart(LocalDateTime halfHourStart) {
        this.halfHourStart = halfHourStart;
        /**
         * 设置半小时时间段起点
         * @param halfHourStart 半小时时间段起点的 LocalDateTime 对象
         */
    }

    public Double getAvgTemperature() {
    /**
     * 获取该半小时内的平均温度
     * @return 该半小时内的平均温度值
     */
        return avgTemperature;
    }

    public void setAvgTemperature(Double avgTemperature) {
    /**
     * 设置该半小时内的平均温度
     * @param avgTemperature 该半小时内的平均温度值
     */
        this.avgTemperature = avgTemperature;
    }

    public Double getAvgHumidity() {
        return avgHumidity;
    /**
     * 获取该半小时内的平均湿度
     * @return 该半小时内的平均湿度值
     */
    }

    public void setAvgHumidity(Double avgHumidity) {
        this.avgHumidity = avgHumidity;
    /**
     * 设置该半小时内的平均湿度
     * @param avgHumidity 该半小时内的平均湿度值
     */
    }

    @Override
    public String toString() {
    /**
     * 重写 toString 方法，用于对象的字符串表示
     * @return 包含对象所有字段值的字符串
     */
        return "EnvHalfHourAggDTO{" +
                "halfHourStart=" + halfHourStart +
                ", avgTemperature=" + avgTemperature +
                ", avgHumidity=" + avgHumidity +
                '}';
    }
}